<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>physics lib class map</title>
    <style>
        body{
            padding: 1rem;
            display: flex;
            flex-direction: column;
        }
        .state-complete{
            width:1rem;
            height:0.5rem;
            margin-top: 0.5rem;
            background-color: rgb(0,255,0);
        }
        .state-progress{
            width:1rem;
            height:0.5rem;
            margin-top: 0.5rem;
            background-color: rgb(0,0,255);
        }
        .state-plan{
            width:1rem;
            height:0.5rem;
            margin-top: 0.5rem;
            background-color: rgb(255,0,0);
        }
        .state-edit{
            width:1rem;
            height:0.5rem;
            margin-top: 0.5rem;
            background-color: rgb(255, 0, 239);
        }
        .element{
            margin-left: 1rem;
            display: flex;
            flex-direction: row;
        }
        .container{
            margin-left: 1rem;
            display: flex;
            flex-direction: column;
            border-left: 1px solid #000000;
            margin-top: 0.25rem;
        }
    </style>
</head>
<body>
    <div class="element"><div class="state-plan"></div>&nbsp&nbsp
        已列入计划但还未开始编写的，或只编写了少量代码、几乎没有实际功能的，或可能需要完全重写的; （包含了与此功能组件相关的，但还未确定的子组件）
    </div>
    <div class="element"><div class="state-progress"></div>&nbsp&nbsp
        编写了部分代码、只有部分当前必需的功能的，或随时都有可能进行功能扩充的，或可能会有较大修改的;
    </div>
    <div class="element"><div class="state-complete"></div>&nbsp&nbsp
        代码编写基本完成，实现了几乎所有设计功能，应该不会再有重大变更的.
    </div>
    <div class="element"><div class="state-edit"></div>&nbsp&nbsp
        正在编辑.
    </div>
    <br/>
    <br/>
    <br/>
    <div class="element">physics-debug<div class="state-complete"></div>
        <div class="container">
            <div class="element">capsule-buffer-geometry<div class="state-complete"></div>
                <div class="container">
                    <div class="element">three(external)</div>
                </div>
            </div>
            <div class="element">vec3<div class="state-complete"></div></div>
            <div class="element">three(external)</div>
        </div>
    </div>
    <br/>
    <div class="element">method<div class="state-progress"></div>
        <div class="container">
            <div class="element">vec3<div class="state-complete"></div>
                <div class="container">
                    <div class="element">constant</div>
                </div>
            </div>
            <div class="element">quat<div class="state-complete"></div>
                <div class="container">
                    <div class="element">mat3</div>
                    <div class="element">constant</div>
                </div>
            </div>
            <div class="element">mat3<div class="state-complete"></div>
                <div class="container">
                    <div class="element">quat</div>
                    <div class="element">vec3</div>
                    <div class="element">constant</div>
                </div>
            </div>
            <div class="element">aabb<div class="state-complete"></div>
                <div class="container">
                    <div class="element">vec3</div>
                    <div class="element">method<div class="state-progress"></div></div>
                </div>
            </div>
            <div class="element">transform<div class="state-complete"></div>
                <div class="container">
                    <div class="element">mat3</div>
                    <div class="element">vec3</div>
                    <div class="element">quat</div>
                </div>
            </div>
        </div>
    </div>
    <br/>
    <div class="element">rigid-body<div class="state-complete"></div>
        <div class="container">
            <div class="element">mass-data<div class="state-complete"></div>
                <div class="container">
                    <div class="element">mat3</div>
                </div>
            </div>
            <div class="element">transform</div>
            <div class="element">vec3</div>
            <div class="element">quat</div>
            <div class="element">method</div>
            <div class="element">mat3</div>
            <div class="element">constant</div>
        </div>
    </div>
    <br/>
    <div class="element">rigid-body-config<div class="state-complete"></div>
        <div class="container">
            <div class="element">method</div>
            <div class="element">mat3</div>
            <div class="element">constant</div>
        </div>
    </div>
    <br/>
    <div class="element">shape components
        <div class="container">
            <div class="element">shape<div class="state-complete"></div>
                <div class="container">
                    <div class="element">transform</div>
                    <div class="element">aabb</div>
                    <div class="element">vec3</div>
                    <div class="element">method</div>
                </div>
            </div>
            <div class="element">shape-config<div class="state-complete"></div><div class="container">
                <div class="element">method</div>
                <div class="element">mat3</div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">aabb-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="state-complete"></div><div class="container">
                    <div class="element">geometry<div class="state-complete"></div></div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">vec3</div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">convex-sweep-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">vec3</div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">sphere-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">box-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">vec3</div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">capsule-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">cylinder-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">cone-geometry<div class="state-complete"></div><div class="container">
                <div class="element">convex-geometry<div class="container">
                    <div class="element">geometry</div>
                    <div class="element">constant</div>
                </div></div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">convex-hull-geometry<div class="state-complete"></div>
                <div class="container">
                    <div class="element">convex-geometry<div class="container">
                        <div class="element">geometry</div>
                        <div class="element">constant</div>
                    </div></div>
                    <div class="element">vec3</div>
                    <div class="element">method</div>
                    <div class="element">constant</div>
                </div></div>
        </div>
    </div>
    <br/>
    <div class="element">joint components<div class="container">
        <div class="element">spherical-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">method</div>
            <div class="element">joint-config<div class="state-complete"></div><div class="container">
                <div class="element">vec3</div>
                <div class="element">constant</div>
            </div></div>
            <div class="element">spring-damper<div class="state-complete"></div></div>
        </div></div>
        <div class="element">spherical-joint<div class="state-complete"></div><div class="container">
            <div class="element">constant</div>
            <div class="element">joint<div class="state-complete"></div><div class="container">
                <div class="element">vec3</div>
                <div class="element">mat3</div>
                <div class="element">method</div>
                <div class="element">constant</div>
                <div class="element">pgs-joint-constraint-solver<div class="state-complete"></div><div class="container">
                    <div class="element">constraint-solver</div>
                    <div class="element">joint-solver-info</div>
                    <div class="element">constant</div>
                    <div class="element">joint-solver-mass-data-row</div>
                </div></div>
                <div class="element">direct-joint-constraint-solver<div class="state-complete"></div><div class="container">
                    <div class="element">constraint-solver<div class="state-complete"></div></div>
                    <div class="element">joint-solver-info<div class="state-complete"></div><div class="container">
                        <div class="element">joint-solver-info-row<div class="state-complete"></div><div class="container">
                            <div class="element">jacobian-row<div class="state-complete"></div></div>
                        </div></div>
                        <div class="element">constant</div>
                    </div></div>
                    <div class="element">mass-matrix<div class="state-complete"></div></div>
                    <div class="element">boundary-builder<div class="state-complete"></div><div class="container">
                        <div class="element">boundary-build-info<div class="state-complete"></div></div>
                        <div class="element">boundary<div class="state-complete"></div><div class="container">
                            <div class="element">constant</div>
                        </div></div>
                    </div></div>
                    <div class="element">joint-solver-mass-data-row<div class="state-complete"></div></div>
                    <div class="element">boundary-selector<div class="state-complete"></div></div>
                    <div class="element">constant<div class="state-complete"></div></div>
                </div></div>
                <div class="element">joint-link<div class="state-complete"></div></div>
                <div class="element">joint-impulse<div class="state-complete"></div></div>
            </div></div>
        </div></div>
        <div class="element">cylindrical-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">method</div>
            <div class="element">vec3</div>
            <div class="element">joint-config</div>
            <div class="element">translational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">rotational-limit-motor</div>
        </div></div>
        <div class="element">cylindrical-joint<div class="state-complete"></div><div class="container">
            <div class="element">vec3</div>
            <div class="element">constant</div>
            <div class="element">joint</div>
            <div class="element">basis-tracker<div class="state-progress"></div></div>
        </div></div>
        <div class="element">generic-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">mat3</div>
            <div class="element">joint-config</div>
            <div class="element">translational-limit-motor</div>
            <div class="element">rotational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">generic-joint<div class="state-complete"></div><div class="container">
            <div class="element">constant</div>
            <div class="element">joint</div>
            <div class="element">vec3</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">prismatic-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">vec3</div>
            <div class="element">joint-config</div>
            <div class="element">translational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">prismatic-joint<div class="state-progress"></div><div class="container">
            <div class="element">joint</div>
            <div class="element">constant</div>
            <div class="element">basis-tracker</div>
            <div class="element">vec3</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">revolute-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">vec3</div>
            <div class="element">joint-config</div>
            <div class="element">rotational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">revolute-joint<div class="state-complete"></div><div class="container">
            <div class="element">joint</div>
            <div class="element">method</div>
            <div class="element">constant</div>
            <div class="element">basis-tracker</div>
            <div class="element">vec3</div>
        </div></div>
        <div class="element">universal-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">vec3</div>
            <div class="element">joint-config</div>
            <div class="element">rotational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">universal-joint<div class="state-complete"></div><div class="container">
            <div class="element">method</div>
            <div class="element">vec3</div>
            <div class="element">constant</div>
            <div class="element">joint</div>
        </div></div>
        <div class="element">ragdoll-joint-config<div class="state-complete"></div><div class="container">
            <div class="element">vec3</div>
            <div class="element">joint-config</div>
            <div class="element">rotational-limit-motor</div>
            <div class="element">spring-damper</div>
            <div class="element">method</div>
        </div></div>
        <div class="element">ragdoll-joint<div class="state-complete"></div><div class="container">
            <div class="element">joint</div>
            <div class="element">vec3</div>
            <div class="element">constant</div>
            <div class="element">method</div>
            <div class="element">rotational-limit-motor</div>
        </div></div>
    </div></div>
    <br/>
    <div class="element">world
        <div class="container">
            <div class="element">brute-force-broad-phase<div class="state-complete"></div><div class="container">
                <div class="element">broad-phase<div class="state-complete"></div><div class="container">
                    <div class="element">convex-sweep-geometry<div class="state-complete"></div></div>
                    <div class="element">aabb-geometry<div class="state-complete"></div></div>
                    <div class="element">vec3</div>
                    <div class="element">transform</div>
                    <div class="element">ray-cast-hit<div class="state-plan"></div></div>
                </div></div>
                <div class="element">physics-proxy<div class="state-complete"></div><div class="container">
                    <div class="element">aabb</div>
                </div></div>
                <div class="element">proxy-pair<div class="state-complete"></div></div>
            </div></div>
            <div class="element">bvh-broad-phase<div class="state-complete"></div><div class="container">
                <div class="element">constant<div class="state-complete"></div></div>
                <div class="element">broad-phase<div class="state-complete"></div></div>
                <div class="element">bvh-tree<div class="state-complete"></div><div class="container">
                    <div class="element">bvh-strategy<div class="state-complete"></div></div>
                    <div class="element">bvh-node<div class="state-complete"></div></div>
                </div></div>
                <div class="element">proxy-pair<div class="state-complete"></div></div>
                <div class="element">gjk-epa<div class="state-edit"></div></div>
                <div class="element">bvh-proxy<div class="state-complete"></div><div class="container">
                    <div class="element">physics-proxy<div class="state-progress"></div><div class="container">
                        <div class="element">aabb</div>
                    </div></div>
                </div></div>
                <div class="element">bvh-node<div class="state-complete"></div></div>
            </div></div>
            <div class="element">contact-manager<div class="state-complete"></div>
                <div class="container">
                    <div class="element">collision-matrix<div class="state-progress"></div>
                        <div class="container">
                            <div class="element">sphere-sphere-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                </div>
                            </div>
                            <div class="element">box-box-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                    <div class="element">face-clipper<div class="state-complete"></div>
                                        <div class="container">
                                            <div class="element">incident-vertex<div class="state-progress"></div></div>
                                        </div>
                                    </div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">sphere-box-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                </div>
                            </div>
                            <div class="element">capsule-capsule-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                </div>
                            </div>
                            <div class="element">sphere-capsule-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                </div>
                            </div>
                            <div class="element">gjk-epa-detector<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">detector<div class="state-complete"></div></div>
                                    <div class="element">gjk-epa<div class="state-complete"></div>
                                        <div class="container">
                                            <div class="element">epa-polyhedron<div class="state-complete"></div>
                                                <div class="container">
                                                    <div class="element">epa-triangle<div class="state-complete"></div>
                                                        <div class="container">
                                                            <div class="element">vec3</div>
                                                            <div class="element">constant</div>
                                                        </div>
                                                    </div>
                                                    <div class="element">vec3</div>
                                                    <div class="element">constant</div>
                                                </div>
                                            </div>
                                            <div class="element">gjk-cache<div class="state-complete"></div>
                                                <div class="container">
                                                    <div class="element">vec3</div>
                                                </div>
                                            </div>
                                            <div class="element">epa-vertex<div class="state-complete"></div>
                                                <div class="container">
                                                    <div class="element">vec3</div>
                                                </div>
                                            </div>
                                            <div class="element">transform</div>
                                            <div class="element">vec3</div>
                                            <div class="element">constant</div>
                                        </div>
                                    </div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">constant</div>
                        </div>
                    </div>
                    <div class="element">contact<div class="state-progress"></div>
                        <div class="container">
                            <div class="element">contact-link<div class="state-complete"></div></div>
                            <div class="element">cached-detector-data<div class="state-complete"></div></div>
                            <div class="element">detector-result<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">vec3</div>
                                    <div class="element">detector-result-point<div class="state-complete"></div>
                                        <div class="container">
                                            <div class="element">vec3</div>
                                        </div>
                                    </div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">manifold<div class="state-complete"></div>
                                <div class="container">
                                    <div class="element">manifold-point<div class="state-complete"></div>
                                        <div class="container">
                                            <div class="element">contact-impulse<div class="state-complete"></div></div>
                                        </div>
                                    </div>
                                    <div class="element">method</div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">manifold-updater<div class="state-progress"></div>
                                <div class="container">
                                    <div class="element">manifold-point<div class="state-complete"></div>
                                        <div class="container">
                                            <div class="element">contact-impulse<div class="state-complete"></div></div>
                                        </div>
                                    </div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">contact-constraint<div class="state-progress"></div>
                                <div class="container">
                                    <div class="element">pgs-contact-constraint-solver<div class="state-progress"></div>
                                        <div class="container">
                                            <div class="element">constraint-solver<div class="state-complete"></div></div>
                                            <div class="element">contact-solver-info<div class="state-complete"></div>
                                                <div class="container">
                                                    <div class="element">contact-solver-info-row<div class="state-complete"></div>
                                                        <div class="container">
                                                            <div class="element">jacobian-row<div class="state-complete"></div></div>
                                                        </div>
                                                    </div>
                                                    <div class="element">constant</div>
                                                </div>
                                            </div>
                                            <div class="element">contact-solver-mass-data-row<div class="state-complete"></div></div>
                                            <div class="element">constant</div>
                                        </div>
                                    </div>
                                    <div class="element">constant</div>
                                </div>
                            </div>
                            <div class="element">constant</div>
                        </div>
                    </div>
                    <div class="element">constant</div>
                </div>
            </div>
            <div class="element">island<div class="state-complete"></div>
                <div class="container">
                    <div class="element">constant</div>
                </div>
            </div>
            <div class="element">ray-cast-wrapper<div class="state-plan"></div></div>
            <div class="element">convex-cast-wrapper<div class="state-plan"></div></div>
            <div class="element">aabb-test-wrapper<div class="state-plan"></div></div>
            <div class="element">constant<div class="state-progress"></div></div>
            <div class="element">time-step<div class="state-complete"></div></div>
            <div class="element">info-display<div class="state-complete"></div></div>
            <div class="element">method<div class="state-progress"></div></div>
            <div class="element">utils(external)</div>
        </div>
    </div>
</body>
</html>